package com.ctshk.rpc.cms.service;

import com.ctshk.common.dto.Result;
import com.ctshk.common.model.PageResponse;
import com.ctshk.common.model.TokenUser;
import com.ctshk.rpc.cms.dto.NoticePositionDTO;
import com.ctshk.rpc.cms.dto.NoticePositionListDTO;
import com.ctshk.rpc.cms.req.NoticePositionAddReq;
import com.ctshk.rpc.cms.req.NoticePositionQueryReq;
import com.ctshk.rpc.cms.req.NoticePositionUpdateReq;
import com.ctshk.rpc.cms.req.SelectAllQueryReq;

import java.util.List;

/**
 * <p>
 * 公告位置管理表 服务类
 * </p>
 *
 * @author LiZhiming
 * @since 2021-04-23
 */
public interface INoticePositionService {

    /**
     * 新增公告位
     *
     * @param req
     * @return
     */
    Result add(NoticePositionAddReq req, TokenUser tu);

    /**
     * 查询公告位作为下拉列表
     *
     * @return
     */
    Result<List<NoticePositionDTO>> getSelectList();

    /**
     * 查询公告位作为下拉列表2
     *
     * @return
     */
    Result<PageResponse<NoticePositionDTO>> getSelectList2(SelectAllQueryReq req);

    /**
     * 查询公告列表
     *
     * @param req
     * @return
     */
    PageResponse<NoticePositionListDTO> getList(NoticePositionQueryReq req);

    /**
     * 查询公告位
     *
     * @param id
     * @return
     */
    Result<NoticePositionListDTO> getNoticePositionById(Long id);

    /**
     * 查询公告位
     *
     * @param code
     * @return
     */
    Result<NoticePositionListDTO> getNoticePositionByCode(String code);

    /**
     * 修改公告位
     *
     * @param req
     * @return
     */
    Result update(NoticePositionUpdateReq req, TokenUser tu);
}
